package com.sluggard.security.manage.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sluggard.security.manage.model.entity.RoleEntity;
import com.sluggard.security.manage.model.entity.UserEntity;
import com.sluggard.security.manage.model.req.ChangeStatusReq;
import com.sluggard.security.manage.model.req.UserReq;
import com.sluggard.security.manage.model.vo.SecurityUser;

import java.util.List;

/**
 * <p>
 * 用户管理 服务类
 * </p>
 *
 * @author lizheng
 * @since 2024-04-28
 */
public interface IUserService extends IService<UserEntity> {

    void changePassword(UserReq req);

    UserEntity loadEntity(Long id);

    void onTables(QueryWrapper<UserEntity> queryWrapper, Page<UserEntity> page);

    List<UserEntity> onList(QueryWrapper<UserEntity> chainWrapper);

    void changeRole(SecurityUser userInfo, RoleEntity role);

    void changeStatus(ChangeStatusReq req);
}
